import sun.awt.image.ImageWatched;

import java.util.*;

public class Test {
    public static void main1(String[] args) {
        //实例化一个ArrayList对象，底层是个数组
        ArrayList<Integer> arrayList1=new ArrayList<>();
        //增添元素12
        arrayList1.add(12);
        //在下标为1的位置增添元素13
        arrayList1.add(1,13);
        //在下标为2的位置增添元素14
        arrayList1.add(2,14);
        //打印数组的长度，输出结果为3
        System.out.println(arrayList1.size());
        //删除下标为2的元素，2位置后面的元素往前移动（覆盖）
        arrayList1.remove(2);
    }

    public static void main2(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            System.out.println(element);
        }
    }

    public static void main3(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(2);
        numbers.add(8);
        numbers.add(1);

        Collections.sort(numbers); // 默认升序排序
        System.out.println(numbers); // 输出：[1, 2, 5, 8]
    }

    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");
        names.add("David");

        Collections.sort(names); // 先排序
        int index = Collections.binarySearch(names, "Charlie");
        System.out.println("Charlie的索引位置：" + index); // 输出：2
    }
}
